package homevideo_model

import (
	"encoding/json"
	"fmt"
	"iptv_server/v3/src/database"
	"iptv_server/v3/src/mydebug"
	"testing"

	"gorm.io/gorm"
)

func TestCategory_Save(t *testing.T) {
	type fields struct {
		Model  gorm.Model
		HomeID uint
		Namex  string
		Home   Home
	}
	tests := []struct {
		name    string
		fields  fields
		wantErr bool
	}{
		{
			name: "?? name",
			fields: fields{
				Namex:  "cat name",
				HomeID: 100,
			},
			wantErr: false,
		},
	}
	mydebug.InitDB()

	database.DB.AutoMigrate(new(Category))

	a := []byte("abcdfeghijik")
	for _, tt := range tests {
		for _, v := range a {
			t.Run(tt.name, func(t *testing.T) {
				cat := &Category{
					HomeID: 11,
					Name:   tt.fields.Namex + "x_" + string(v),
				}

				if err := cat.Create(); (err != nil) != tt.wantErr {
					t.Errorf("Category.Save() error = %v, wantErr %v", err, tt.wantErr)
				}
			})
		}
	}
}

// func TestHome_GetAllCategory(t *testing.T) {
// 	type fields struct {
// 		id uint
// 	}
// 	tests := []struct {
// 		name    string
// 		fields  fields
// 		wantCat []*Category
// 		wantErr bool
// 	}{
// 		{
// 			name: "test",
// 			fields: fields{
// 				id: 42,
// 			},
// 			wantCat: nil,
// 			wantErr: false,
// 		},
// 	}
// 	for _, tt := range tests {
// 		t.Run(tt.name, func(t *testing.T) {
// 			home := &Home{
// 				Model: gorm.Model{ID: tt.fields.id},
// 			}
// 			gotCat, err := home.GetAllCategory()
// 			if (err != nil) != tt.wantErr {
// 				t.Errorf("Home.GetAllCategory() error = %v, wantErr %v", err, tt.wantErr)
// 				return
// 			}
// 			// if !reflect.DeepEqual(gotCat, tt.wantCat) {
// 			t.Errorf("Home.GetAllCategory() = %v, want %v", gotCat, tt.wantCat)
// 			for _, v := range gotCat {
// 				t.Logf("got=%v", v)
// 			}

// 			// }
// 		})
// 	}
// }

// func TestHome_GetCategory(t *testing.T) {
// 	type fields struct {
// 		id uint
// 	}
// 	tests := []struct {
// 		name    string
// 		fields  fields
// 		wantCat *Category
// 		wantErr bool
// 	}{
// 		{
// 			name: "test",
// 			fields: fields{
// 				id: 42,
// 			},
// 			wantCat: nil,
// 			wantErr: false,
// 		},
// 	}
// 	for _, tt := range tests {
// 		t.Run(tt.name, func(t *testing.T) {
// 			home := &Home{
// 				Model: gorm.Model{ID: tt.fields.id},
// 			}
// 			gotCat, err := home.GetCategory()
// 			if (err != nil) != tt.wantErr {
// 				t.Errorf("Home.GetCategory() error = %v, wantErr %v", err, tt.wantErr)
// 				return
// 			}
// 			t.Logf("%v", gotCat)
// 			// if !reflect.DeepEqual(gotCat, tt.wantCat) {
// 			// 	t.Errorf("Home.GetCategory() = %v, want %v", gotCat, tt.wantCat)
// 			// }
// 		})
// 	}
// }

func TestListDetailsWithLimit(t *testing.T) {
	mydebug.InitDB()

	data, err := GetPage(1, 2, 1)
	t.Logf("err: %v\n", err)
	_ = err
	bs, err := json.Marshal(data)
	jo := string(bs)
	fmt.Printf("jo: %v\n", jo)
	fmt.Printf("err: %v\n", err)

	fmt.Printf("err: %v\n", data)
	fmt.Printf("err: %v\n", err)

}
